<template>
  <div>
    <div class="bg-white grid-content">
      <div style="overflow: hidden; padding-bottom:8px;">
        <div class="mytitle"><svg-icon icon-class="yjbb" class="myIcon" />站库基础数据</div>
        <div class="myButtons">
          <el-button @click="handleClick('', 'add')">新增</el-button>
        </div>
      </div>
      <!-- 表格 -->
      <el-table :data="tableData" :header-cell-style="{background:'#F5F7FA',color:'#909399'}" border stripe>
        <el-table-column align="center" type="index" label="序号" :index="indexMethod" width="60">
          </el-table-column>
          <el-table-column align="center" prop="zkid" label="站库ID">
          </el-table-column>
          <el-table-column align="center" prop="jgid" label="所属机构">
          </el-table-column>
          <el-table-column align="center" prop="zkmc" label="站库名称">
          </el-table-column>
          <el-table-column align="center" prop="zkmcJc" label="站库简称">
          </el-table-column>
          <el-table-column align="center" prop="zklb" label="站库类别">
          </el-table-column>
          <el-table-column align="center" prop="zkdm" label="站库代码">
          </el-table-column>
          <el-table-column align="center" prop="sszkid" label="所属站库ID">
          </el-table-column>
          <el-table-column align="center" prop="bz" label="备注">
          </el-table-column>


          <el-table-column align="center" label="操作" width="140">
            <template slot-scope="scope">
              <el-button @click="handleClick(scope.row, 'check')" type="text" style="color: #2ec02e">查看</el-button>
              <el-button @click="handleClick(scope.row, 'edit')" type="text">编辑</el-button>
              <el-button @click="handleDelete(scope.row)" type="text" style="color: red">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
      <!-- 分页器 -->
      <el-pagination align='right'
          background
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="pageNo"
          :page-sizes="[5,10, 20, 30, 40, 50]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total">
        </el-pagination>
    </div>

   <!-- 弹出框 -->
   <el-dialog :title="myDialogTitle" :visible.sync="dialogFormVisible" :before-close="handleClose" custom-class="saveAsDialog">

<el-form :inline="true" :model="zkjcsjForm" class="demo-form-inline" :rules="rules" ref="zkjcsjForm" :disabled="isInput" label-position="left" label-width="130px" >
  <!-- <el-divider content-position="left">基础信息</el-divider> -->
  <el-row>
      <el-col :span="12">
        <el-form-item label="站库ID:" prop="zkid">
          <el-input v-model="zkjcsjForm.zkid" placeholder="请输入站库ID"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="所属机构:" prop="jgid">
          <el-select v-model="zkjcsjForm.jgid" placeholder="请选择所属机构" filterable>
                    <el-option
                        v-for="(item,index) in jgList"
                        :key="item.jgid"
                        :label="item.jgmc"
                        :value="item.jgid"
                    />
                  </el-select>
        </el-form-item>
      </el-col>

    </el-row>
    <el-row>
      <el-col :span="12">
        <el-form-item label="站库名称:">
          <el-input v-model="zkjcsjForm.zkmc" placeholder="请输入站库名称"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="站库简称:">
          <el-input v-model="zkjcsjForm.zkmcJc" placeholder="请输入站库简称"></el-input>
        </el-form-item>
      </el-col>
    </el-row>

    <el-row>
      <el-col :span="12">
        <el-form-item label="站库类别:" >
          <el-input v-model="zkjcsjForm.zklb" placeholder="请输入站库类别"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="站库代码:" >
          <el-input v-model="zkjcsjForm.zkdm" placeholder="请输入站库代码"></el-input>
        </el-form-item>
      </el-col>
    </el-row>

    <el-row>
      <el-col :span="12">
        <el-form-item label="上级站库:">
          <el-select v-model="zkjcsjForm.sszkid" placeholder="请选择上级站库" filterable>
            <el-option
                v-for="(item) in zkList"
                :key="item.zkid"
                :label="item.zkmc"
                :value="item.zkid"
            />
          </el-select>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="备注:">
          <el-input v-model="zkjcsjForm.bz" placeholder="请输入备注"></el-input>
        </el-form-item>
      </el-col>
    </el-row>


</el-form>

<div slot="footer" class="dialog-footer" v-show="!ischeck">
  <el-button @click="close('zkjcsjForm')">取 消</el-button>
  <el-button type="primary" @click="submitForm('zkjcsjForm')">确 定</el-button>
</div>
</el-dialog>
  </div>
</template>

<script>
import axios from "axios";
import { getToken } from "@/utils/auth";
import zzjgApi from '@/api/jcsj/jcsy/zzjg';
import zkjcsjApi from '@/api/jcsj/jcsy/zkjcsj';

export default {
  data() {
    return {
      // show:false,//隐藏序列
      pageNo: 1, //当前页码
      pageSize: 10, //每页显示数量
      total: 0, //总数量
      // table数据
      tableData: [],
      //当前页码
      currentPage: 1,
      //表单填报的数据
      zkjcsjForm: {
        zkid:'',//站库ID
        jgid:'',//机构ID
        zkmc: '',//站库名称
        zkmcJc: '',//站库简称
        zklb: '',//站库类别
        zkdm: '',//站库代码
        sszkid: '',//所属站库ID
        bz: '',//备注
      },
      //验证规则
      rules: {
        zkid: [
          { required: true, message: '请输入站库ID', trigger: 'blur' },
        ],
        jgid: [
          { required: true, message: '请选择所属机构', trigger: 'blur' },
        ],
      },
      //时间快捷选择
      pickerOptions: {
        // disabledDate(time) {
        //   return time.getTime() > Date.now();
        // },
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            picker.$emit('pick', new Date());
          }
        }, {
          text: '昨天',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24);
            picker.$emit('pick', date);
          }
        }, {
          text: '一周前',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', date);
          }
        }]
      },
      //获取当前日期
      currentTime:'',
      //编辑框是否显示
      dialogFormVisible: false,
      //弹出框是否是查看
      ischeck: false,
      //控制查看时不可更改数据
      isInput:false,
      //弹出框标题
      myDialogTitle: '',
      //获取机构列表
      jgList:[],
      //获取站库列表
      zkList:[],
      //是否新增
      isadd: true,
    }
  },
  created(){
    this.search();
  },
  mounted(){
    this.searchJg();
    this.filterTime();
    this.searchZkSj()
  },
  methods: {
    /**
    * 查询列表
    */
    async search() {
      // this.pageNo = pageNo; //当前页码
      // this.pageSize = pageSize; //每页显示数量
      //发送查询请求
      let res = await zkjcsjApi.getList({pageNo:this.pageNo,pageSize:this.pageSize});
      //判断是否成功
      if(res.success){
        console.log(111);
        console.log(res.data);
        //赋值
        this.tableData = res.data.records;
        this.zkList = res.data.records;
        console.log(1013);
        console.log(res.data.records);
        //总数量
        this.total = res.data.total;
      }
    },
    //查询机构列表
    async searchJg() {
        //发送查询请求
        let res = await zzjgApi.getList2();
        //判断是否成功
        if(res.success){
          console.log(1212);
          console.log(res.data.records);
          console.log('jg'+res.data.records);
          //赋值
          this.jgList = res.data;
          console.log(this.jgList);
          //总数量
        }
      },
    //查询上级站库
    async searchZkSj() {
      // this.pageNo = pageNo; //当前页码
      // this.pageSize = pageSize; //每页显示数量
      //发送查询请求
      let res = await zkjcsjApi.getList2();
      //判断是否成功
      if(res.success){
        this.zkList = res.data;
      }
    },
    onSubmit() {
      console.log('submit!');
    },
    //关闭对话框
    handleClose(done) {
      // 清空表单
      // this.$refs['zkjcsjForm'].resetFields();
      // 清空表单校验，避免再次进来会出现上次校验的记录
      this.$refs['zkjcsjForm'].clearValidate()
      done()

    },
      // 弹框关闭触发
    close(formName) {
      this.dialogFormVisible = false;
      // 清空表单
      // this.$refs[formName].resetFields();
      // 清空表单校验，避免再次进来会出现上次校验的记录
      this.$refs[formName].clearValidate()
    },

    submitForm(formName) {
      //表单验证
      this.$refs[formName].validate(async (valid) => {
          if (valid) {
              let res = null;
              console.log(this.zkjcsjForm.zkid+"111")
              //判断菜单ID是否为空
              if (this.isadd) {
                console.log(1013)
                  console.log(this.zkjcsjForm)
                  //发送添加请求
                  res = await zkjcsjApi.add(this.zkjcsjForm);
              } else {
                  //发送修改请求
                  // console.log(334345)
                  res = await zkjcsjApi.update(this.zkjcsjForm);
              }
              console.log(res)
              //判断是否成功
              if (res.success) {
                  this.$message.success(res.message);
                  //刷新
                  this.search();
                  //关闭窗口
                  this.dialogFormVisible = false;
              } else {
                console.log(res)
                  this.$message.error(res.message);
              }
          }
      })
    },
    handleClick(row, handle) {
      // console.log(row.approveStatus);
      this.dialogFormVisible = true;
      if (handle == 'check') {
        this.myDialogTitle = '站库基础数据'
        this.ischeck = true
        this.isInput = true;// 1.表单禁用
        // this.zkjcsjForm = row
        this.$objCopy(row, this.zkjcsjForm);//把当前要编辑的数据复制到数据域，给表单回显
        this.$message({ message: '成功打开', type: 'success' });
      } else if (handle == 'edit') {
            this.myDialogTitle = '站库基础数据编辑'
            this.ischeck = false
            this.isadd = false
            this.isInput = false
            this.$objCopy(row, this.zkjcsjForm);//把当前要编辑的数据复制到数据域，给表单回显
      } else if (handle == 'add') {
        // this.zkjcsjForm ={}
        this.$resetForm("zkjcsjForm", this.zkjcsjForm); //清空表单数据
        this.myDialogTitle = '站库基础数据填报'
        this.isadd = true
        this.ischeck = false
        this.isInput = false
      }
    },

    //删除行数据
    async handleDelete(row) {

      let confirm = await this.$myconfirm("确定要删除该数据吗?");
      console.log(confirm)
      if (confirm) {
      //发送删除请求
      let res = await zkjcsjApi.delete({ zkid: row.zkid });
      console.log(res)
      //判断是否成功
      if (res.success) {
          //成功提示
          this.$message.success(res.message);
          //刷新
          this.search();
      } else {
          //失败提示
          this.$message.error(res.message);
      }
      }

    },
      //批量删除
    handleSelectionChange(val){
      this.multipleSelection = val;
      console.log(this.multipleSelection);
    },
    async handleBDelete() {
      //判断是否可以删除
      //确认是否删除
      let confirm = await this.$myconfirm("确定要删除该数据吗?");
      console.log(confirm)
      var ids = []
      if (confirm) {
          for(let j=0 ; j<this.multipleSelection.length; j++){
              if (this.multipleSelection[j].approveStatus == 2) {
                  //提示不能删除
                  console.log(this.multipleSelection[j].approveStatus)
                  this.$message({ message: '有已通过数据不可删除！', type: 'error' });
                  return;

              }
              ids[j] = this.multipleSelection[j].id
          }
          console.log("ids",ids)
          // const ids = ids.toString();
          // console.log("ids",ids)
          //发送删除请求
          console.log('111')
          let res = await xcwxApi.Bdelete(ids);
          console.log('222')
          console.log(res)
          //判断是否成功
          if (res.success) {
          //成功提示
          this.$message.success(res.message);
          //刷新
          this.search();
          } else {
          //失败提示
          this.$message.error(res.message);
          }
      }
    },

    /*** 当每页数量发生变化时触发该事件 */
    handleSizeChange(size) {
      console.log(size);
      this.pageSize = size;
      //将每页显示的数量交给成员变量
      this.search(this.pageNo, size);
    },
    /*** 当页码发生变化时触发该事件 */
    handleCurrentChange(page) {
      console.log(page);
      this.pageNo = page;
      //调用查询方法
      this.search(page, this.pageSize);
    },
    // 序号计算
    indexMethod (index) {
    // index默认在0开始，这里+1
      return index + 1 + (this.pageNo - 1) * this.pageSize
    },
    // 获取当前日期
    filterTime() {
      var date = new Date();
      var y = date.getFullYear();
      var m = date.getMonth() + 1;
      m = m < 10 ? '0' + m : m;
      var d = date.getDate();
      d = d < 10 ? '0' + d : d;
      this.currentTime = y + '-' + m + '-' + d;
      // console.log(typeof(new Date(this.currentTime)));
    },
  }
}
</script>

<style lang="scss" scoped>
// 标题
.mytitle {
  font-size: large;
  padding-left: 10px;
  margin-bottom: 16px;
  float: left;
}

//按钮组
.myButtons {
  float: right
}

//格子的样式
.bg-white {
  background: #ffffff;
}

.grid-content {
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 4px;
}

.calendar ::v-deep .el-button-group::before {
  display: none;
}

.calendar ::v-deep .el-button-group::after {
  display: none;
}

// 分割线样式
.el-divider--horizontal {
  display: block;
  height: 2px;
  width: 100%;
  margin: 24px 0;
}

// 表单各项的样式
.el-form-item {
  margin: 15px 10px 15px 10px;
}

//表单禁用字体样式
.el-input.is-disabled ::v-deep .el-input__inner {
    color: #606266;
  }
//对话框宽度
// .customWidth{
//         width:80%;
//     }
::v-deep .saveAsDialog {
  width: 50% !important;
}

::v-deep .el-table .cell{overflow: unset}
//日期选择框宽度
.el-date-editor.el-input, .el-date-editor.el-input__inner { width: 200px; }

.el-input {
  width: 200px;
}
</style>
